In this notebook, we present the calculations of the Ito's normalized HOMFLYPT polynomials, that imply the existence of an infinite family of positive fibered knots that are all not braid positive.

For that we need to compute the normalized HOMFLYPT polynomials of L_1 and L_2 as explained in the paper. However, L_1 is a link and the exact value of the HOMFLYPT polynomial (and its fiberedness status) depends on the orientation of the components of the link. On the other hand, the convertion between the different link classes does not always keep track of the orientations. So we actually compute the normalized HOMFLYPT polynomials of L_0, L_2, and L_4 which are all knots. The inductive formula from the paper yields then the HOMFLYPT polynomials also for the links.

This are the three knots.

In [1]:
import snappy
L0=snappy.Link('K5a2')
L2=snappy.Link('K10n7')
L4=snappy.Link('K12n105')

We first start by checking that these knots are really positive and fibered.

In [2]:
def sign_of_crossing(cros):
    '''
    Returns the sign of a crossing. (In a PD code that is ordered.)
    '''
    if cros[1]==0 and cros[3]!=1:
        return 1
    if cros[3]==0and cros[1]!=1:
        return -1
    if cros[1]>cros[3]:
        return +1
    return -1

def diagram_is_positive(PD_code):
    '''
    Checks if the diagram is positive (or negative). (In a PD code that is ordered.)
    '''
    pm=sign_of_crossing(PD_code[0])
    for c in PD_code:
        if sign_of_crossing(c)!=pm:
            return False
    return True
In [3]:
diagram_is_positive(L0.PD_code())
Out[3]:
True
In [4]:
diagram_is_positive(L2.PD_code())
Out[4]:
True
In [5]:
diagram_is_positive(L4.PD_code())
Out[5]:
True
In [6]:
L0.knot_floer_homology()
Out[6]:
{'L_space_knot': True,
 'epsilon': 1,
 'fibered': True,
 'modulus': 2,
 'nu': 2,
 'ranks': {(-2, -4): 1, (-1, -3): 1, (0, -2): 1, (1, -1): 1, (2, 0): 1},
 'seifert_genus': 2,
 'tau': 2,
 'total_rank': 5}
In [7]:
L2.knot_floer_homology()
Out[7]:
{'L_space_knot': False,
 'epsilon': 1,
 'fibered': True,
 'modulus': 2,
 'nu': 3,
 'ranks': {(-3, -6): 1,
  (-2, -5): 1,
  (-2, -4): 1,
  (-1, -3): 4,
  (0, -2): 7,
  (1, -1): 4,
  (2, -1): 1,
  (2, 0): 1,
  (3, 0): 1},
 'seifert_genus': 3,
 'tau': 3,
 'total_rank': 21}
In [8]:
L4.knot_floer_homology()
Out[8]:
{'L_space_knot': False,
 'epsilon': 1,
 'fibered': True,
 'modulus': 2,
 'nu': 4,
 'ranks': {(-4, -8): 1,
  (-3, -7): 1,
  (-3, -6): 1,
  (-2, -5): 4,
  (-1, -4): 8,
  (0, -3): 9,
  (1, -2): 8,
  (2, -1): 4,
  (3, -1): 1,
  (3, 0): 1,
  (4, 0): 1},
 'seifert_genus': 4,
 'tau': 4,
 'total_rank': 39}

We continue with the normalized HOMFLYPT polynomials. Note that we only print the part P_n with vanishing z-coefficients.

In [9]:
var('a,b,v,z')

R = PolynomialRing(ZZ, ['a','b'])

def HOMFLY(word):
    '''
    Computes the HOMFLY polynomial.
    '''
    K=snappy.Link(braid_closure=word)
    K.simplify(mode='global')
    L=K.sage_link()
    h(v,z) = L.homfly_polynomial('v', 'z', 'az')
    return h(v,z)

def normalized_HOMFLY(word):
    '''
    Given the braid word of an fibered knot. Returns Ito's normalized version of the HOMFLY.
    '''
    L=snappy.Link(braid_closure=word)
    alex=L.exterior().alexander_polynomial()
    g=alex.degree()/2
    h(v,z)=HOMFLY(word)
    homfly=(h((-a)^(-1/2),b^(1/2))*(-a)^(-g)).expand()
    return homfly
In [10]:
normalized_HOMFLY(L0.braid_word())(a,b=0)
Out[10]:
2*a + 3
In [11]:
normalized_HOMFLY(L2.braid_word())(a,b=0)
Out[11]:
-a^3 - 2*a^2 + 2*a + 4
In [12]:
normalized_HOMFLY(L4.braid_word())(a,b=0)
Out[12]:
-2*a^3 - 4*a^2 + 2*a + 5

This are the necessary computations for proving that the whole infinite family is not braid positive. However, for completeness we print these results for the first 50 knots from the family. For that we use a surgery description to get braid words. From the braid words we check positivity fiberedness and compute the normalized HOMFLYPT polynomials.

In [13]:
word=[1, 2, 3, 3, -4, 3, 2, -1, 2, 3, 4, 3]
for n in range(0,51):
    print('LINK: L',2*n)
    w=word+2*n*[2]
    D=snappy.Link(braid_closure=w)
    D.simplify('global')
    print('Name:',D.exterior().identify())
    print('Positive:',diagram_is_positive(D.PD_code()))
    print('Fibered:',D.knot_floer_homology().get('fibered'))
    print('P-part of Normalized HOMFLYPT:',normalized_HOMFLY(w)(a,b=0))
    print('---------------------------------')
LINK: L 0
Name: [5_1(0,0), K5a2(0,0)]
Positive: True
Fibered: True
P-part of Normalized HOMFLYPT: 2*a + 3
---------------------------------
LINK: L 2
Name: [10_154(0,0), K10n7(0,0)]
Positive: True
Fibered: True
P-part of Normalized HOMFLYPT: -a^3 - 2*a^2 + 2*a + 4
---------------------------------
LINK: L 4
Name: [K12n105(0,0)]
Positive: True
Fibered: True
P-part of Normalized HOMFLYPT: -2*a^3 - 4*a^2 + 2*a + 5
---------------------------------
LINK: L 6
Name: [K14n1955(0,0)]
Positive: True
Fibered: True
P-part of Normalized HOMFLYPT: -3*a^3 - 6*a^2 + 2*a + 6
---------------------------------
LINK: L 8
Name: []
Positive: True
Fibered: True
P-part of Normalized HOMFLYPT: -4*a^3 - 8*a^2 + 2*a + 7
---------------------------------
LINK: L 10
Name: []
Positive: True
Fibered: True
P-part of Normalized HOMFLYPT: -5*a^3 - 10*a^2 + 2*a + 8
---------------------------------
LINK: L 12
Name: []
Positive: True
Fibered: True
P-part of Normalized HOMFLYPT: -6*a^3 - 12*a^2 + 2*a + 9
---------------------------------
LINK: L 14
Name: []
Positive: True
Fibered: True
P-part of Normalized HOMFLYPT: -7*a^3 - 14*a^2 + 2*a + 10
---------------------------------
LINK: L 16
Name: []
Positive: True
Fibered: True
P-part of Normalized HOMFLYPT: -8*a^3 - 16*a^2 + 2*a + 11
---------------------------------
LINK: L 18
Name: []
Positive: True
Fibered: True
P-part of Normalized HOMFLYPT: -9*a^3 - 18*a^2 + 2*a + 12
---------------------------------
LINK: L 20
Name: []
Positive: True
Fibered: True
P-part of Normalized HOMFLYPT: -10*a^3 - 20*a^2 + 2*a + 13
---------------------------------
LINK: L 22
Name: []
Positive: True
Fibered: True
P-part of Normalized HOMFLYPT: -11*a^3 - 22*a^2 + 2*a + 14
---------------------------------
LINK: L 24
Name: []
Positive: True
Fibered: True
P-part of Normalized HOMFLYPT: -12*a^3 - 24*a^2 + 2*a + 15
---------------------------------
LINK: L 26
Name: []
Positive: True
Fibered: True
P-part of Normalized HOMFLYPT: -13*a^3 - 26*a^2 + 2*a + 16
---------------------------------
LINK: L 28
Name: []
Positive: True
Fibered: True
P-part of Normalized HOMFLYPT: -14*a^3 - 28*a^2 + 2*a + 17
---------------------------------
LINK: L 30
Name: []
Positive: True
Fibered: True
P-part of Normalized HOMFLYPT: -15*a^3 - 30*a^2 + 2*a + 18
---------------------------------
LINK: L 32
Name: []
Positive: True
Fibered: True
P-part of Normalized HOMFLYPT: -16*a^3 - 32*a^2 + 2*a + 19
---------------------------------
LINK: L 34
Name: []
Positive: True
Fibered: True
P-part of Normalized HOMFLYPT: -17*a^3 - 34*a^2 + 2*a + 20
---------------------------------
LINK: L 36
Name: []
Positive: True
Fibered: True
P-part of Normalized HOMFLYPT: -18*a^3 - 36*a^2 + 2*a + 21
---------------------------------
LINK: L 38
Name: []
Positive: True
Fibered: True
P-part of Normalized HOMFLYPT: -19*a^3 - 38*a^2 + 2*a + 22
---------------------------------
LINK: L 40
Name: []
Positive: True
Fibered: True
P-part of Normalized HOMFLYPT: -20*a^3 - 40*a^2 + 2*a + 23
---------------------------------
LINK: L 42
Name: []
Positive: True
Fibered: True
P-part of Normalized HOMFLYPT: -21*a^3 - 42*a^2 + 2*a + 24
---------------------------------
LINK: L 44
Name: []
Positive: True
Fibered: True
P-part of Normalized HOMFLYPT: -22*a^3 - 44*a^2 + 2*a + 25
---------------------------------
LINK: L 46
Name: []
Positive: True
Fibered: True
P-part of Normalized HOMFLYPT: -23*a^3 - 46*a^2 + 2*a + 26
---------------------------------
LINK: L 48
Name: []
Positive: True
Fibered: True
P-part of Normalized HOMFLYPT: -24*a^3 - 48*a^2 + 2*a + 27
---------------------------------
LINK: L 50
Name: []
Positive: True
Fibered: True
P-part of Normalized HOMFLYPT: -25*a^3 - 50*a^2 + 2*a + 28
---------------------------------
LINK: L 52
Name: []
Positive: True
Fibered: True
P-part of Normalized HOMFLYPT: -26*a^3 - 52*a^2 + 2*a + 29
---------------------------------
LINK: L 54
Name: []
Positive: True
Fibered: True
P-part of Normalized HOMFLYPT: -27*a^3 - 54*a^2 + 2*a + 30
---------------------------------
LINK: L 56
Name: []
Positive: True
Fibered: True
P-part of Normalized HOMFLYPT: -28*a^3 - 56*a^2 + 2*a + 31
---------------------------------
LINK: L 58
Name: []
Positive: True
Fibered: True
P-part of Normalized HOMFLYPT: -29*a^3 - 58*a^2 + 2*a + 32
---------------------------------
LINK: L 60
Name: []
Positive: True
Fibered: True
P-part of Normalized HOMFLYPT: -30*a^3 - 60*a^2 + 2*a + 33
---------------------------------
LINK: L 62
Name: []
Positive: True
Fibered: True
P-part of Normalized HOMFLYPT: -31*a^3 - 62*a^2 + 2*a + 34
---------------------------------
LINK: L 64
Name: []
Positive: True
Fibered: True
P-part of Normalized HOMFLYPT: -32*a^3 - 64*a^2 + 2*a + 35
---------------------------------
LINK: L 66
Name: []
Positive: True
Fibered: True
P-part of Normalized HOMFLYPT: -33*a^3 - 66*a^2 + 2*a + 36
---------------------------------
LINK: L 68
Name: []
Positive: True
Fibered: True
P-part of Normalized HOMFLYPT: -34*a^3 - 68*a^2 + 2*a + 37
---------------------------------
LINK: L 70
Name: []
Positive: True
Fibered: True
P-part of Normalized HOMFLYPT: -35*a^3 - 70*a^2 + 2*a + 38
---------------------------------
LINK: L 72
Name: []
Positive: True
Fibered: True
P-part of Normalized HOMFLYPT: -36*a^3 - 72*a^2 + 2*a + 39
---------------------------------
LINK: L 74
Name: []
Positive: True
Fibered: True
P-part of Normalized HOMFLYPT: -37*a^3 - 74*a^2 + 2*a + 40
---------------------------------
LINK: L 76
Name: []
Positive: True
Fibered: True
P-part of Normalized HOMFLYPT: -38*a^3 - 76*a^2 + 2*a + 41
---------------------------------
LINK: L 78
Name: []
Positive: True
Fibered: True
P-part of Normalized HOMFLYPT: -39*a^3 - 78*a^2 + 2*a + 42
---------------------------------
LINK: L 80
Name: []
Positive: True
Fibered: True
P-part of Normalized HOMFLYPT: -40*a^3 - 80*a^2 + 2*a + 43
---------------------------------
LINK: L 82
Name: []
Positive: True
Fibered: True
P-part of Normalized HOMFLYPT: -41*a^3 - 82*a^2 + 2*a + 44
---------------------------------
LINK: L 84
Name: []
Positive: True
Fibered: True
P-part of Normalized HOMFLYPT: -42*a^3 - 84*a^2 + 2*a + 45
---------------------------------
LINK: L 86
Name: []
Positive: True
Fibered: True
P-part of Normalized HOMFLYPT: -43*a^3 - 86*a^2 + 2*a + 46
---------------------------------
LINK: L 88
Name: []
Positive: True
Fibered: True
P-part of Normalized HOMFLYPT: -44*a^3 - 88*a^2 + 2*a + 47
---------------------------------
LINK: L 90
Name: []
Positive: True
Fibered: True
P-part of Normalized HOMFLYPT: -45*a^3 - 90*a^2 + 2*a + 48
---------------------------------
LINK: L 92
Name: []
Positive: True
Fibered: True
P-part of Normalized HOMFLYPT: -46*a^3 - 92*a^2 + 2*a + 49
---------------------------------
LINK: L 94
Name: []
Positive: True
Fibered: True
P-part of Normalized HOMFLYPT: -47*a^3 - 94*a^2 + 2*a + 50
---------------------------------
LINK: L 96
Name: []
Positive: True
Fibered: True
P-part of Normalized HOMFLYPT: -48*a^3 - 96*a^2 + 2*a + 51
---------------------------------
LINK: L 98
Name: []
Positive: True
Fibered: True
P-part of Normalized HOMFLYPT: -49*a^3 - 98*a^2 + 2*a + 52
---------------------------------
LINK: L 100
Name: []
Positive: True
Fibered: True
P-part of Normalized HOMFLYPT: -50*a^3 - 100*a^2 + 2*a + 53
---------------------------------
In [ ]: